package projetofinal.wsdl2js.util;

import projetofinal.wsdl2js.exception.ExceptionHandler;
import projetofinal.wsdl2js.exception.LessThenZeroException;


public class Indent {
	
	public Indent () {
		indentValue = new Integer(0);
	}
	
	public Indent (int aIndentValue) {
		indentValue = new Integer(aIndentValue);
	}
	
	//falta tratar os ifs e repeticoes que não usam {}; tratar case : ; tratar parametros de uma função que são utilizados na linha de baixo; tratar as linhas que começam com //, /*
	
	public String str (String aString) {
		if (aString.length() > 0) {
			char firstChar = aString.trim().charAt(0);
			char lastChar = aString.trim().charAt(aString.trim().length()-1);
			//String firstWord = aString.substring(0, aString.indexOf(" ")-1);
			if (firstChar == '}') {
				if (indentValue <= 0) {
					LessThenZeroException ie = new LessThenZeroException ("A identação já está no menor valor possível");
					ExceptionHandler.handle(ie);
				}
				indentValue--;
			}
			
			StringBuilder temp = new StringBuilder();
			for (int i = 0; i < indentValue; i++) {
				temp.append(Consts.TAB);
			}
			temp.append(aString);
			
			if (lastChar == '{') {
				indentValue++;
			}
			return temp.toString();
		}
		
		return "";
	}
	
	//PRIVATE
	
	static Integer indentValue;
}